'use strict';

const Controller = require('egg').Controller;


class UserController extends Controller {
  // 登录
  async login() {
    const { ctx, app } = this;
    const data = ctx.request.body;
    // 判断该用户是否存在并且密码是否正确
    const isValidUser = await ctx.service.user.validUser(data.nickname, data.password);
    if (isValidUser) {
      const token = app.jwt.sign({ nickname: data.nickname }, app.config.jwt.secret);
      ctx.body = { code: 200, msg: '登录成功', token };
    } else {
      ctx.body = { code: 400, msg: '登录失败' };
    }
    // const token = app.jwt.sign({nickname: data.nickname,}, app.config.jwt.secret);
  }
  // 验证token，请求时在header配置 Authorization=`Bearer ${token}`
  // 特别注意：token不能直接发送，要在前面加上Bearer字符串和一个空格
  async index() {
    const { ctx } = this;
    console.log(ctx.state.user);
    // ctx.body = { code: 201, msg: '验证成功' };
    ctx.body = await ctx.service.user.getUser();
  }

  // 通过id获取用户
  async show() {
    const { ctx } = this;
    ctx.body = await ctx.service.user.getUser(ctx.params.id);
  }
  // 进行md5加密
  async getMd5Data() {
    const { ctx } = this;
    ctx.body = await ctx.service.user.getMd5Data(ctx.params.data);
  }
  // 创建人员
  async create() {
    const { ctx } = this;
    const { nickname } = ctx.request.body;
    await ctx.service.user.addUser(nickname);
    ctx.body = { code: 200, msg: '新增成功' };
  }
  // 修改密码
  async updatePwd() {
    const { ctx } = this;
    const { password } = ctx.request.body;
    await ctx.service.user.editPwd(ctx.params.id, password);
    ctx.body = { code: 200, msg: '修改成功' };
  }

}

module.exports = UserController;
